class Solution {
    public int rob(int[] nums) {
        int len=nums.length;
        if(len==1)
        return nums[0];
        else if(len==2)
        return Math.max(nums[0],nums[1]);
        else
        return Math.max(robs(nums,0,len-2),robs(nums,1,len-1));

    }
    public int robs(int[]nums,int s,int e)
    {
        int chang=nums.length;
        int dp[]=new int[chang];
        dp[s]=nums[s];
        dp[s+1]=Math.max(nums[s],nums[s+1]);
        for(int i=s+2;i<=e;i++)
        dp[i]=Math.max(dp[i-2]+nums[i],dp[i-1]);
        return dp[e];
    }
}

